package com.qf.kele02.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qf.kele02.entity.User;
import com.qf.kele02.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


@Repository
public interface UserDao extends BaseMapper<User> {

	public User getUserById( Integer id );


	public User getUserByIdAndPassword( @Param("id") Integer id,@Param("pwd") String password );


	public User selectUserByIdAndPwd_map( Map map );


	public User selectUserByUserInfo( User user );


	public List< User > selectUsersByName( @Param("name") String name );


	public Integer deleteUserByid( @Param("id") Integer id );


	public Integer updateUser( User user );

	public Integer insertUser( User user );


	// 选择所有没有被点名的同学
	public List< User > getAllUnPickedUsers( );

	// 把sex重置为0
	public Integer resetUsers( );


	//  演示 sql 注入问题
	public List< User > selectUsersByKeyword( @Param("name") String name );


	// 演示 $ 的使用场景
	public List< User > selectUserByidwithOrder( @Param("order") String order );

	// 查询所有用户,带分页条件
	public List< User > getAllUserByPage( Integer start,Integer size );


	//查询所有头像文件名
	List< String > selectPhotos( );

	// 查询所有使用后
	public List< User > getAllUser( );

	// 测试让myslq数据库休眠
	public void sleep( );

	// 根据用户名查询用户
	User getUserByName( @Param("username") String username );

	// 查询用户表总条数
	Integer selectCount( );

	// 分页查询
	List< User > selectUserByPage( @Param("start") Integer start,@Param("limit") Integer limit );

	// 批量删除用户
	Integer deleteUserByIds( @Param("ids") List< Integer > ids );

	// 根据条件查询用户
	List< User > getUsersByContdition( UserVo userVo );

	Integer insertUsers( @Param("list") List< User > list );
}
